#ifndef __BRANCH1_BASE_TRIGGER_CONDITIOINS_H__
#define __BRANCH1_BASE_TRIGGER_CONDITIOINS_H__

#include "Branch1BaseConfig.h"
namespace DAISY
{
class _BranchBaseExport TriggerConditions
{

	
public:
	virtual bool operator()(Event * evt) = 0;
	virtual ~TriggerConditions(void){}
};
class _BranchBaseExport TriggerConditionsProxy: public TriggerConditions
{
private:
	typedef boost::function< bool ( Event * ) > TriggerFunctor;
public:
	TriggerConditionsProxy(const TriggerFunctor & functor):_functor(functor){}
	virtual bool operator()(Event * evt){return _functor(evt);}
	virtual ~TriggerConditionsProxy(void){}
private:
	TriggerFunctor _functor;
};


typedef boost::shared_ptr<TriggerConditions>  TriggerConditionsPtr;

}


#endif